home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 8
/
FM Towns Free Software Collection 8.iso
/
t_os
/
edo
/
rex
/
egbcall.bas
< prev
next >
Wrap
BASIC Source File
|
1994-06-01
|
1KB
|
43 lines
10 'EGB CALL
20 CLEAR ,,1024,100000,4096:DEFINT A-Z:LOADM ".\egbcall.rex",0
30 DIM STACK%(32867),EGBWORK%(1000) 'スタック領域とワーク領域の確保
40 DIM GETREG&(10) '返りレジスタ値を得る領域の確保
50 DIM PARA%(100) 'パラメータ領域の確保
100 '
110 'EGB初期化
120 '
130 A&=CALLM(0,0,VARPTR(STACK%(32867))+1,VARPTR(EGBWORK%(0)),1536)
140 IF A&<>0 THEN BEEP:PRINT "EGBの初期化に失敗しました":END
200 '
210 'サンプル
220 '
230 AH=1:AL=1:EDX&=3:GOSUB *EGB '256モード以外はテキスト画面はモード3
240 SCREEN@ 0:AL=0:GOSUB *EGB '16色はモード3 (AH,EDX&は230行で設定済)
250 AH=6:AL=1:EDX&=3:GOSUB *EGB '両ページ表示/手前をページ1に
260 AH=5:AL=1:GOSUB *EGB '書き込みページを1(テキスト画面)に設定
270 RANDOMIZE TIME '線をランダムな色でランダムに1000本描く
280 FOR A=0 TO 1000
290 X0=RND(1)*640:Y0=RND(1)*479
300 X1=RND(1)*640:Y1=RND(1)*479
310 C=RND(1)*16:GOSUB *LINE
320 NEXT
330 END
500 '
510 'ラインを描く
520 '
530 *LINE
540 AH=7:AL=0:EDX&=C:GOSUB *EGB '描画色をcに設定
550 PARA%(0)=2 '座標点数に2をセット
560 PARA%(1)=X0:PARA%(2)=Y0 '第1点座標セット
570 PARA%(3)=X1:PARA%(4)=Y1 '第2点座標セット
580 AH=&H42:ESI&=VARPTR(PARA%(0)) '不連続線分を描くEGB機能
590 GOSUB *EGB
600 RETURN
1000 '
1010 'EGB実行部(変数が破壊される事は無い)
1020 '
1030 *EGB
1040 A&=CALLM(0,AH,AL,EBX&,ECX&,EDX&,ESI&,RET&)
1050 IF A&<>0 THEN BEEP:PRINT "EGBの実行に失敗しました":END
1060 RETURN